package cn.com.lyj6851.modules.activity.service;

import cn.com.lyj6851.common.service.BaseService;
import cn.com.lyj6851.modules.activity.domain.YdyStoreSeckill;
import cn.com.lyj6851.modules.activity.service.dto.YdyStoreSeckillDto;
import cn.com.lyj6851.modules.activity.service.dto.YdyStoreSeckillQueryCriteria;
import cn.com.lyj6851.modules.activity.vo.StoreSeckillVo;
import cn.com.lyj6851.modules.activity.vo.YdyStoreSeckillQueryVo;
import org.springframework.data.domain.Pageable;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
import java.util.Map;

public interface YdyStoreSeckillService  extends BaseService<YdyStoreSeckill> {


    /**
     * 产品详情
     * @param id 秒杀商品id
     * @return StoreSeckillVo
     */
    StoreSeckillVo getDetail(Long id);

    /**
     * 秒杀产品列表
     * @param page page
     * @param limit limit
     * @return list
     */
    List<YdyStoreSeckillQueryVo> getList(int page, int limit, int time);

    /**
     * 秒杀产品列表(首页用)
     * @param page page
     * @param limit limit
     * @return list
     */
    List<YdyStoreSeckillQueryVo> getList(int page, int limit);

    /**
    * 查询数据分页
    * @param criteria 条件
    * @param pageable 分页参数
    * @return Map<String,Object>
    */
    Map<String,Object> queryAll(YdyStoreSeckillQueryCriteria criteria, Pageable pageable);

    /**
    * 查询所有数据不分页
    * @param criteria 条件参数
    * @return List<YdyStoreSeckillDto>
    */
    List<YdyStoreSeckill> queryAll(YdyStoreSeckillQueryCriteria criteria);

    /**
    * 导出数据
    * @param all 待导出的数据
    * @param response /
    * @throws IOException /
    */
    void download(List<YdyStoreSeckillDto> all, HttpServletResponse response) throws IOException;

    boolean saveSeckill(YdyStoreSeckillDto resources);
}
